//进行axios的二次封装
import axios from 'axios'
import { ElMessage } from 'element-plus'
import useUserStore from '../store/modules/user'

//1.创建实例，包括基础路径和时间
const request = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL,
    timeout: 5000 //超时设置
})

//2.给实例添加请求和响应拦截器
request.interceptors.request.use((config) => {
    let useStore = useUserStore() //也可以从locastorage里面获取
    if (useStore.token) {
        config.headers.token = useStore.token;
    }
    //config配置对象，headers属性请求头，经常给服务器端携带公共参数
    return config
})

//3.响应拦截器
request.interceptors.response.use((response) => {
    return response.data
}, error => {
   let message = ''
   if (error.response.status == 404) {
    message = '出错了'
   } else {
    message = '出错了接口'
   }
   ElMessage({
    type: error,
    message
   })

   return Promise.reject(error)
})

export default request